Increasingly users of mobile devices, such as laptops, Personal Digital Assistants (PDAs), smart phones, and Portable Media Players (PMPs), are watching videos streamed over wireless networks to such devices. When the streaming rates of such videos are high, and the number of mobile devices on the network is large, streaming videos using unicast transmissions may overload the wireless network. In contrast, streaming videos from a base station using one-to-many multicast or broadcast service can support many more mobile devices. Wireless networks that support multicast or broadcast transmission are referred to herein as broadcast networks. Such broadcast networks include WiMAX networks, Multimedia Broadcast Multicast Services (MBMS) cellular networks, and mobile TV broadcast networks such as Digital Video Broadcast-Handheld (DVB-H), MediaFLO (Forward Link Only), and Advanced Television Systems Committee (ATSC) mobile DTV networks.
A typical broadcast network includes three entities: content providers; network operators; and mobile devices. Content providers are the entities that create and/or distribute the videos. Network operators are the entities that manage base stations and provide services to users of mobile devices. A network operator multiplexes several videos into a broadcast stream, and transmits the broadcast stream over a broadcast network with a fixed bandwidth.
Streaming videos are usually encoded in Variable-Bit-Rate (VBR), rather than Constant-Bit-Rate (CBR) for better video quality, shorter delay, and higher statistical multiplexing gain. Because the broadcast network has limited bandwidth, a multiplexer must ensure that the bit rate of the broadcast stream does not exceed the network bandwidth. One way to control the bit rate is to employ joint video coders, which encode multiple videos and dynamically allocate available network bandwidth among them, so that the aggregate bit rate of the coded video streams never exceeds the network bandwidth. A joint video coder includes a joint rate allocator, several decoders, and several VBR coders. Broadcast networks with joint video coders are referred to herein as closed-loop broadcast networks. Joint video coders are not always present in broadcast networks, because of a high deployment cost. Such broadcast networks with standalone video coders are referred to herein as open-loop broadcast networks.
As mobile devices are battery powered, energy consumption is important to user experience, since higher energy consumption leads to a shorter viewing time. Therefore, broadcast networks need to implement some energy saving techniques. A common technique is to cause the base station to send each video stream in bursts at a bit rate higher than the encoding rate of the video. This is referred to as time slicing in broadcast network standards. The base station determines the next burst time and includes that information in the header fields of each burst. Time slicing enables the mobile devices to receive a burst of traffic, and then put their receiving circuits into sleep until the next burst in order to save energy. While time slicing allows mobile devices to save energy, multiplexers must carefully compose burst schedules, which specify the start time of each burst and its size, in order to maintain good service quality.
The energy saving of mobile devices in broadcast networks that send videos in bursts has been considered. For example, the European Telecommunications Standards Institute (ETSI) DVB-H Guidelines disclose that streaming videos in bursts enables mobile devices to put their receiving circuits into sleep for a significant fraction of time.
Streaming VBR videos in the Internet is challenging. Several smoothing algorithms have been proposed, including the absorption of bit rate variations of a VBR stream by adding buffers at both sender and receiver, and computing a CBR transmission schedule that results in no buffer violation instances. Such smoothing algorithms are based on the leaky bucket algorithm, and the assumption that packets are small. While the packet size assumption holds in the Internet, broadcast networks transmit videos in much larger bursts to save energy.
A number of scheduling algorithms require the administrator of a broadcast network to manually set certain parameters (e.g. the time slot size, which is used in many current multiplexers in the market). Such systems tend to be error-prone and do not yield optimal performance.
Many commercial multiplexers implement two burst scheduling schemes: slotted and dynamic scheduling. Network operators use variations of these two schemes to broadcast VBR streams. These schemes may need manual configuration of multiple parameters, and they do not produce optimal schedules in terms of energy saving for mobile devices and bandwidth utilization of the wireless spectrum.